// 模块化
;(function (){
    // 构造函数
    function Promise(excutor){
        console.log( 'Promise构造函数...' );

        // resolve函数
        function resolve(){
            console.log( 'resolve函数...' );
        }

        // reject函数
        function reject(){
            console.log( 'reject函数...' );
        }

        // excutor函数，同步执行
        excutor(resolve,reject);
    }

    // then方法（重点难点）
    Promise.prototype.then = function (){
        console.log( 'then方法...' );
    }

    // catch方法
    Promise.prototype.catch = function (){
        console.log( 'catch方法...' );
    }

    // all静态方法
    Promise.all = function (){
        console.log( 'all静态方法...' );
    }

    // race静态方法
    Promise.race = function (){
        console.log( 'race静态方法...' );
    }

    // 如何在自执行函数外部访问Promise函数？
    // return Promise; // 外部不能访问
    window.Promise = Promise;
})();
